(1) Field of the Invention:
This invention relates generally to a computer and printer system in which communication with the printer from the computer can occur in different modes. The invention more particularly concerns maintaining in the computer the capability of unidirectional communication of print jobs to the printer and the capability of bidirectional communication with the printer, while resolving conflicts between the two modes of communication in an acceptable manner.
(2) Background of the Invention:
The invention is disclosed particularly in relation to a personal computer operating under the Microsoft Windows 3.1 environment and running a Windows application program which is capable of bidirectional communication with a printer attached to the computer's parallel port.
In the particular system to be described, the application program for printing and bidirectional communication running under Windows maintains the parallel port of the personal computer in a bidirectional communication and printing mode, but the parallel port must be taken out of this mode in order to perform unidirectional printing, either from another Windows application or from a DOS session running under Windows. Care must also be taken to prevent the mixing of unidirectional and bidirectional print jobs through the parallel port. Both the prevention of starting unidirectional printing while a bidirectional printing job is underway and the prevention of bidirectional printing when unidirectional printing is underway must be accomplished.
(3) Summary of the Invention:
It's the general aim of the invention to provide multi-mode printing without errors in systems of the foregoing type.
In the embodiment of the invention to be described herein, the multi-mode printing technique permits bidirectional and unidirectional printing and printer communication without errors from mixing print modes. The technique takes the form of having the above-mentioned Windows printing application hook calls from the Windows Print Manager to the Windows VPD to detect unidirectional Windows printing. For DOS session print jobs, the printing application hooks I/O and BIOS interrupt 17h access to the parallel port.
The printing application running under Windows also determines if a bidirectional print job is being communicated to the printer over the parallel port in order to determine whether or not to permit unidirectional printing at any given time.